home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Languages / MPW Oberon 2.1168 / OInterfaces / QuickdrawText.mod < prev    next >
Encoding:
Text File  |  1995-08-10  |  9.0 KB  |  240 lines  |  [TEXT/MPS ]

  1. (*
  2.      File:        QuickdrawText.mod
  3.  
  4.      Contains:    QuickDraw Text Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Package:    Universal Interfaces 2.0 in “MPW Latest” on ETO #17
  8.  
  9.      Copyright:    © 1984-1995 by Apple Computer, Inc.
  10.                  All rights reserved.
  11.  
  12.      Bugs?:        If you find a problem with this file, use the Apple Bug Reporter
  13.                  stack.  Include the file and version information (from above)
  14.                  in the problem description and send to:
  15.                      Internet:    apple.bugs.applelink.apple.com
  16.                      AppleLink:    APPLE.BUGS
  17.  
  18. *)
  19.  
  20. (*$IF UNDEFINED OLDROUTINENAMES*)
  21. (*$SET OLDROUTINENAMES FALSE*)
  22. (*$END*)
  23. (*$TAGS-*)
  24. (*$CALLING PASCAL*)
  25. MODULE QuickdrawText;
  26.  
  27. IMPORT SYSTEM, Types;
  28.  
  29. (* $PUSH*)
  30. (* $ALIGN MAC68K*)
  31. (* $LibExport+*)
  32.  
  33. CONST
  34. (* CharToPixel directions *)
  35.     leftCaret*                    = 0;                            (*Place caret for left block*)
  36.     rightCaret*                    = -1;                            (*Place caret for right block*)
  37.     hilite*                        = 1;                            (*Direction is SysDirection*)
  38.     smLeftCaret*                    = 0;                            (*Place caret for left block - obsolete *)
  39.     smRightCaret*                = -1;                            (*Place caret for right block - obsolete *)
  40.     smHilite*                    = 1;                            (*Direction is TESysJust - obsolete *)
  41. (*Constants for styleRunPosition argument in PortionLine, DrawJustified,
  42.  MeasureJustified, CharToPixel, and PixelToChar.*)
  43.     onlyStyleRun*                = 0;                            (* This is the only style run on the line *)
  44.     leftStyleRun*                = 1;                            (* This is leftmost of multiple style runs on the line *)
  45.     rightStyleRun*                = 2;                            (* This is rightmost of multiple style runs on the line *)
  46.     middleStyleRun*                = 3;                            (* There are multiple style runs on the line and this 
  47.  is neither the leftmost nor the rightmost. *)
  48.     smOnlyStyleRun*                = 0;                            (* obsolete *)
  49.     smLeftStyleRun*                = 1;                            (* obsolete *)
  50.     smRightStyleRun*                = 2;                            (* obsolete *)
  51.     smMiddleStyleRun*            = 3;                            (* obsolete *)
  52.  
  53. (* type for styleRunPosition parameter in PixelToChar etc. *)
  54.     
  55. TYPE
  56.     JustStyleCode* = INTEGER;
  57.  
  58.     FormatOrder* = ARRAY 1 (*ΔΔ[0..0]ΔΔ*) OF INTEGER;
  59.  
  60.     FormatOrderPtr* = POINTER TO FormatOrder;
  61.  
  62.     OffPair* = RECORD
  63.         offFirst*:                INTEGER;
  64.         offSecond*:                INTEGER;
  65.     END;
  66.  
  67.     OffsetTable* = ARRAY 3 (*ΔΔ[0..2]ΔΔ*) OF OffPair;
  68.  
  69.     StyleRunDirectionProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (styleRunIndex: INTEGER; dirParam: (*ΔΔUNIVΔΔ*) Types.Ptr): BOOLEAN;
  70.     StyleRunDirectionUPP* = Types.UniversalProcPtr;
  71.  
  72. CONST
  73.     uppStyleRunDirectionProcInfo* = $00000390; (* PROCEDURE (2 byte param, 4 byte param): 1 byte result; *)
  74.  
  75. PROCEDURE NewStyleRunDirectionProc*(userRoutine: StyleRunDirectionProcPtr): StyleRunDirectionUPP;
  76.     (*$IF NOT GENERATINGCFM *)
  77.     INLINE PASCAL $2E9F;
  78.     (*$END*)
  79.  
  80. PROCEDURE CallStyleRunDirectionProc*(styleRunIndex: INTEGER; dirParam: (*ΔΔUNIVΔΔ*) Types.Ptr; userRoutine: StyleRunDirectionUPP): BOOLEAN;
  81.     (*$IF NOT GENERATINGCFM*)
  82.     INLINE PASCAL $205F, $4E90;
  83.     (*$END*)
  84.  
  85. PROCEDURE Pixel2Char*(textBuf: Types.Ptr; textLen: INTEGER; slop: INTEGER; pixelWidth: INTEGER; VAR leadingEdge: BOOLEAN): INTEGER;
  86.     (*$IF NOT GENERATINGCFM*)
  87.     INLINE PASCAL $2F3C, $820E, $0014, $A8B5;
  88.     (*$END*)
  89. PROCEDURE Char2Pixel*(textBuf: Types.Ptr; textLen: INTEGER; slop: INTEGER; offset: INTEGER; direction: INTEGER): INTEGER;
  90.     (*$IF NOT GENERATINGCFM*)
  91.     INLINE PASCAL $2F3C, $820C, $0016, $A8B5;
  92.     (*$END*)
  93. PROCEDURE PixelToChar*(textBuf: Types.Ptr; textLength: LONGINT; slop: Types.Fixed; pixelWidth: Types.Fixed; VAR leadingEdge: BOOLEAN; VAR widthRemaining: Types.Fixed; styleRunPosition: JustStyleCode; numer: Types.Point; denom: Types.Point): INTEGER;
  94.     (*$IF NOT GENERATINGCFM*)
  95.     INLINE PASCAL $2F3C, $8222, $002E, $A8B5;
  96.     (*$END*)
  97. PROCEDURE CharToPixel*(textBuf: Types.Ptr; textLength: LONGINT; slop: Types.Fixed; offset: LONGINT; direction: INTEGER; styleRunPosition: JustStyleCode; numer: Types.Point; denom: Types.Point): INTEGER;
  98.     (*$IF NOT GENERATINGCFM*)
  99.     INLINE PASCAL $2F3C, $821C, $0030, $A8B5;
  100.     (*$END*)
  101. PROCEDURE DrawJustified*(textPtr: Types.Ptr; textLength: LONGINT; slop: Types.Fixed; styleRunPosition: JustStyleCode; numer: Types.Point; denom: Types.Point);
  102.     (*$IF NOT GENERATINGCFM*)
  103.     INLINE PASCAL $2F3C, $8016, $0032, $A8B5;
  104.     (*$END*)
  105. PROCEDURE MeasureJustified*(textPtr: Types.Ptr; textLength: LONGINT; slop: Types.Fixed; charLocs: Types.Ptr; styleRunPosition: JustStyleCode; numer: Types.Point; denom: Types.Point);
  106.     (*$IF NOT GENERATINGCFM*)
  107.     INLINE PASCAL $2F3C, $801A, $0034, $A8B5;
  108.     (*$END*)
  109. PROCEDURE PortionLine*(textPtr: Types.Ptr; textLen: LONGINT; styleRunPosition: JustStyleCode; numer: Types.Point; denom: Types.Point): Types.Fixed;
  110.     (*$IF NOT GENERATINGCFM*)
  111.     INLINE PASCAL $2F3C, $8412, $0036, $A8B5;
  112.     (*$END*)
  113. PROCEDURE HiliteText*(textPtr: Types.Ptr; textLength: INTEGER; firstOffset: INTEGER; secondOffset: INTEGER; VAR offsets: OffsetTable);
  114.     (*$IF NOT GENERATINGCFM*)
  115.     INLINE PASCAL $2F3C, $800E, $001C, $A8B5;
  116.     (*$END*)
  117. PROCEDURE DrawJust*(textPtr: Types.Ptr; textLength: INTEGER; slop: INTEGER);
  118.     (*$IF NOT GENERATINGCFM*)
  119.     INLINE PASCAL $2F3C, $8008, $001E, $A8B5;
  120.     (*$END*)
  121. PROCEDURE MeasureJust*(textPtr: Types.Ptr; textLength: INTEGER; slop: INTEGER; charLocs: Types.Ptr);
  122.     (*$IF NOT GENERATINGCFM*)
  123.     INLINE PASCAL $2F3C, $800C, $0020, $A8B5;
  124.     (*$END*)
  125. PROCEDURE PortionText*(textPtr: Types.Ptr; textLength: LONGINT): Types.Fixed;
  126.     (*$IF NOT GENERATINGCFM*)
  127.     INLINE PASCAL $2F3C, $8408, $0024, $A8B5;
  128.     (*$END*)
  129. PROCEDURE VisibleLength*(textPtr: Types.Ptr; textLength: LONGINT): LONGINT;
  130.     (*$IF NOT GENERATINGCFM*)
  131.     INLINE PASCAL $2F3C, $8408, $0028, $A8B5;
  132.     (*$END*)
  133. PROCEDURE GetFormatOrder*(ordering: FormatOrderPtr; firstFormat: INTEGER; lastFormat: INTEGER; lineRight: BOOLEAN; rlDirProc: StyleRunDirectionUPP; dirParam: Types.Ptr);
  134.     (*$IF NOT GENERATINGCFM*)
  135.     INLINE PASCAL $2F3C, $8012, $FFFC, $A8B5;
  136.     (*$END*)
  137. (*$IF OLDROUTINENAMES *)
  138. PROCEDURE NPixel2Char*(textBuf: Types.Ptr; textLength: LONGINT; slop: Types.Fixed; pixelWidth: Types.Fixed; VAR leadingEdge: BOOLEAN; VAR widthRemaining: Types.Fixed; styleRunPosition: JustStyleCode; numer: Types.Point; denom: Types.Point): INTEGER;
  139.     (*$IF NOT GENERATINGCFM*)
  140.     INLINE PASCAL $2F3C, $8222, $002E, $A8B5;
  141.     (*$END*)
  142. PROCEDURE NChar2Pixel*(textBuf: Types.Ptr; textLength: LONGINT; slop: Types.Fixed; offset: LONGINT; direction: INTEGER; styleRunPosition: JustStyleCode; numer: Types.Point; denom: Types.Point): INTEGER;
  143.     (*$IF NOT GENERATINGCFM*)
  144.     INLINE PASCAL $2F3C, $821C, $0030, $A8B5;
  145.     (*$END*)
  146. PROCEDURE NDrawJust*(textPtr: Types.Ptr; textLength: LONGINT; slop: Types.Fixed; styleRunPosition: JustStyleCode; numer: Types.Point; denom: Types.Point);
  147.     (*$IF NOT GENERATINGCFM*)
  148.     INLINE PASCAL $2F3C, $8016, $0032, $A8B5;
  149.     (*$END*)
  150. PROCEDURE NMeasureJust*(textPtr: Types.Ptr; textLength: LONGINT; slop: Types.Fixed; charLocs: Types.Ptr; styleRunPosition: JustStyleCode; numer: Types.Point; denom: Types.Point);
  151.     (*$IF NOT GENERATINGCFM*)
  152.     INLINE PASCAL $2F3C, $801A, $0034, $A8B5;
  153.     (*$END*)
  154. PROCEDURE NPortionText*(textPtr: Types.Ptr; textLen: LONGINT; styleRunPosition: JustStyleCode; numer: Types.Point; denom: Types.Point): Types.Fixed;
  155.     (*$IF NOT GENERATINGCFM*)
  156.     INLINE PASCAL $2F3C, $8412, $0036, $A8B5;
  157.     (*$END*)
  158. (*$END*)
  159.  
  160. TYPE
  161.     FontInfo* = RECORD
  162.         ascent*:                    INTEGER;
  163.         descent*:                INTEGER;
  164.         widMax*:                    INTEGER;
  165.         leading*:                INTEGER;
  166.     END;
  167.  
  168.     FormatStatus* = INTEGER;
  169.  
  170.  
  171. PROCEDURE TextFont*(font: INTEGER);
  172.     (*$IF NOT GENERATINGCFM*)
  173.     INLINE PASCAL $A887;
  174.     (*$END*)
  175. PROCEDURE TextFace*(face: Types.Style);
  176.     (*$IF NOT GENERATINGCFM*)
  177.     INLINE PASCAL $A888;
  178.     (*$END*)
  179. PROCEDURE TextMode*(mode: INTEGER);
  180.     (*$IF NOT GENERATINGCFM*)
  181.     INLINE PASCAL $A889;
  182.     (*$END*)
  183. PROCEDURE TextSize*(size: INTEGER);
  184.     (*$IF NOT GENERATINGCFM*)
  185.     INLINE PASCAL $A88A;
  186.     (*$END*)
  187. PROCEDURE SpaceExtra*(extra: Types.Fixed);
  188.     (*$IF NOT GENERATINGCFM*)
  189.     INLINE PASCAL $A88E;
  190.     (*$END*)
  191. PROCEDURE DrawChar*(ch: CHAR);
  192.     (*$IF NOT GENERATINGCFM*)
  193.     INLINE PASCAL $A883;
  194.     (*$END*)
  195. PROCEDURE DrawString*(s: Types.ConstStr255Param);
  196.     (*$IF NOT GENERATINGCFM*)
  197.     INLINE PASCAL $A884;
  198.     (*$END*)
  199. PROCEDURE DrawText*(textBuf: (*ΔΔUNIVΔΔ*) Types.Ptr; firstByte: INTEGER; byteCount: INTEGER);
  200.     (*$IF NOT GENERATINGCFM*)
  201.     INLINE PASCAL $A885;
  202.     (*$END*)
  203. PROCEDURE CharWidth*(ch: CHAR): INTEGER;
  204.     (*$IF NOT GENERATINGCFM*)
  205.     INLINE PASCAL $A88D;
  206.     (*$END*)
  207. PROCEDURE StringWidth*(s: Types.ConstStr255Param): INTEGER;
  208.     (*$IF NOT GENERATINGCFM*)
  209.     INLINE PASCAL $A88C;
  210.     (*$END*)
  211. PROCEDURE TextWidth*(textBuf: (*ΔΔUNIVΔΔ*) Types.Ptr; firstByte: INTEGER; byteCount: INTEGER): INTEGER;
  212.     (*$IF NOT GENERATINGCFM*)
  213.     INLINE PASCAL $A886;
  214.     (*$END*)
  215. PROCEDURE MeasureText*(count: INTEGER; textAddr: (*ΔΔUNIVΔΔ*) Types.Ptr; charLocs: (*ΔΔUNIVΔΔ*) Types.Ptr);
  216.     (*$IF NOT GENERATINGCFM*)
  217.     INLINE PASCAL $A837;
  218.     (*$END*)
  219. PROCEDURE GetFontInfo*(VAR info: FontInfo);
  220.     (*$IF NOT GENERATINGCFM*)
  221.     INLINE PASCAL $A88B;
  222.     (*$END*)
  223. PROCEDURE CharExtra*(extra: Types.Fixed);
  224.     (*$IF NOT GENERATINGCFM*)
  225.     INLINE PASCAL $AA23;
  226.     (*$END*)
  227. PROCEDURE StdText*(count: INTEGER; textAddr: (*ΔΔUNIVΔΔ*) Types.Ptr; numer: Types.Point; denom: Types.Point);
  228.     (*$IF NOT GENERATINGCFM*)
  229.     INLINE PASCAL $A882;
  230.     (*$END*)
  231. PROCEDURE StdTxMeas*(byteCount: INTEGER; textAddr: (*ΔΔUNIVΔΔ*) Types.Ptr; VAR numer: Types.Point; VAR denom: Types.Point; VAR info: FontInfo): INTEGER;
  232.     (*$IF NOT GENERATINGCFM*)
  233.     INLINE PASCAL $A8ED;
  234.     (*$END*)
  235.  
  236. (* $ALIGN RESET*)
  237. (* $POP*)
  238.  
  239.  END QuickdrawText.
  240.